Shift to Corresponding Media in a Playback Queue

ABSTRACT

Embodiments described herein provide for extending media playback. In an example implementation, during playback of one or more first media items populated in a queue, a control device extends playback time of the queue. Extending playback time of the queue may involve determining when the one or more first media items will be finished playing; and before the first media items are finished playing, determining one or more second media items that correspond in substantial likeness to the one or more first media items and sending an instruction that causes the first playback device to insert the determined one or more second media items into the queue such that play time of the queue is extended.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. non-provisional patentapplication Ser. No. 13/536,154, filed on Jun. 28, 2012, entitled “Shiftto Corresponding Media in a Playback Queue,” which is incorporatedherein by reference in its entirety.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tosystems, products, features, services, and other items directed to mediaplayback or some aspect thereof.

BACKGROUND

Technological advancements have increased the accessibility of musiccontent, as well as other types of media, such as television content,movies, and interactive content. For example, a user can access audio,video, or both audio and video content over the Internet through anonline store, an Internet radio station, a music service, a movieservice, and so on, in addition to the more traditional avenues ofaccessing audio and video content. Demand for audio, video, and bothaudio and video content inside and outside of the home continues toincrease.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologyare better understood with regard to the following description, appendedclaims, and accompanying drawings where:

FIG. 1 shows an illustration of an example system in which embodimentsof the methods and apparatus disclosed herein can be implemented;

FIG. 2A shows an illustration of an example zone player having abuilt-in amplifier and speakers;

FIG. 2B shows an illustration of an example zone player having abuilt-in amplifier and connected to external speakers;

FIG. 2C shows an illustration of an example zone player connected to anA/V receiver and speakers;

FIG. 3 shows an illustration of an example controller;

FIG. 4 shows an internal functional block diagram of an example zoneplayer;

FIG. 5 shows an internal functional block diagram of an examplecontroller;

FIG. 6 shows a flow diagram according to an embodiment; and

FIG. 7 shows an example user interface according to an embodiment.

In addition, the drawings are for the purpose of illustrating exampleembodiments, but it is understood that the present disclosure is notlimited to the arrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Brief Overview

Embodiments described herein provide for intelligently extending mediaplayback. According to an embodiment, a playback queue for an audioplayer is established. The playback queue contains one or more playableitems, which can be played by the audio player according to thearrangement of the items. At least one additional playable item thatcorresponds in substantial likeness to the list of playable items isdetermined, without additional user effort, and placed in the playbackqueue, which extends play time.

Unlike a traditional playback queue where the audio stops playing when alist of songs or tracks in the queue have been played or are exhausted,in one embodiment, the system automatically shifts to playback audiothat is similar to the audio in the queue. In an embodiment, theplayback of similar audio includes automatically adding similar songs ortracks to the playback queue to be played. In another embodiment, theplayback of similar audio includes automatically playing a streamingstation, such as an online radio station, which is similar to thepreviously played songs or tracks.

In an embodiment, in addition to placing extra playable items at the endof a playback queue, or instead of, the system can place a playable itemin between two playable items already in the playback queue. In otherwords, the system can be configured to inject additional playable itemsthroughout the playback queue.

In an embodiment, the system extends play time by automaticallydetermining and/or playing audio content that is similar to what hasbeen played by the particular player or group of players. In thisembodiment, the system determines what audio has actually been played ina zone or zones versus just looking to the audio content in a playbackqueue, in which for example, a user could have removed songs or tracksduring playback. The system may look to what audio has been played overa designated time period (e.g., the last 30 minutes).

According to some embodiments, the playable item that is to be added toextend play time corresponds in substantial likeness to the list ofplayable items already in the queue and/or played. Substantial likenessis defined herein as having an identifiable similarity. For instance, asong might be classified according to attributes like artist, genre,instrumentation, tonality, ostinato, and so on that can be used todetermine similarities.

II. An Example Operating Environment

Referring now to the drawings, in which like numerals can refer to likeparts throughout the figures, FIG. 1 shows an example system 100 inwhich one or more embodiments disclosed herein can be practiced orimplemented.

By way of illustration, system 100 represents a home presentlyconfigured with multiple zones, though the home could have beenconfigured with only one zone. Each zone in the home, for example, mayrepresent a different room or space, such as an office, bathroom,bedroom, kitchen, dining room, family room, home theater room, utilityor laundry room, and patio. A single zone might also include multiplerooms if so configured. One or more of zone players 102-124 are shown ineach respective zone of the home. A zone player 102-124, also referredto as a playback device, multimedia unit, speaker, player, and so on,provides audio, video, and/or audiovisual output. Controller 130provides control to system 100. Controller 130 may be fixed to a zone,or alternatively, mobile such that it can be moved about the zones.System 100 may also include more than one controller 130. System 100illustrates an example whole house audio system, though it is understoodthat the technology described herein is not limited to its particularplace of application or to an expansive system like a whole house audiosystem 100 of FIG. 1.

a. Example Zone Players

FIGS. 2A, 2B, and 2C show example types of zone players. Zone players200, 202, and 204 of FIGS. 2A, 2B, and 2C, respectively, can correspondto any of the zone players 102-124 of FIG. 1, for example. In someembodiments, audio is reproduced using only a single zone player, suchas by a full-range player. In some embodiments, audio is reproducedusing two or more zone players, such as by using a combination offull-range players or a combination of full-range and specializedplayers. In some embodiments, zone players 200-204 may also be referredto as a “smart speaker,” because they contain processing capabilitiesbeyond the reproduction of audio, more of which is described below.

FIG. 2A illustrates zone player 200 that includes sound producingequipment 208 capable of reproducing full-range sound. The sound maycome from an audio signal that is received and processed by zone player200 over a wired or wireless data network. Sound producing equipment 208includes one or more built-in amplifiers and one or more speakers. Abuilt-in amplifier is described more below with respect to FIG. 4. Aspeaker or acoustic transducer can include, for example, any of atweeter, a mid-range driver, a low-range driver, and a subwoofer. Insome embodiments, zone player 200 can be statically or dynamicallyconfigured to play stereophonic audio, monaural audio, or both. In someembodiments, zone player 200 is configured to reproduce a subset offull-range sound, such as when zone player 200 is grouped with otherzone players to play stereophonic audio, monaural audio, and/or surroundaudio or when the audio content received by zone player 200 is less thanfull-range.

FIG. 2B illustrates zone player 202 that includes a built-in amplifierto power a set of detached speakers 210. A detached speaker can include,for example, any type of loudspeaker. Zone player 202 may be configuredto power one, two, or more separate loudspeakers. Zone player 202 may beconfigured to communicate an audio signal (e.g., right and left channelaudio or more channels depending on its configuration) to the detachedspeakers 210 via a wired path.

FIG. 2C illustrates zone player 204 that does not include a built-inamplifier, but is configured to communicate an audio signal, receivedover a data network, to an audio (or “audio/video”) receiver 214 withbuilt-in amplification.

Referring back to FIG. 1, in some embodiments, one, some, or all of thezone players 102 to 124 can retrieve audio directly from a source. Forexample, a zone player may contain a playlist or queue of audio items tobe played (also referred to herein as a “playback queue”). Each item inthe queue may comprise a uniform resource identifier (URI) or some otheridentifier. The URI or identifier can point the zone player to the audiosource. The source might be found on the Internet (e.g., the cloud),locally from another device over data network 128, the controller 130,stored on the zone player itself, or from an audio source communicatingdirectly to the zone player. In some embodiments, the zone player canreproduce the audio itself, send it to another zone player forreproduction, or both where the audio is played by the zone player andone or more additional zone players in synchrony. In some embodiments,the zone player can play a first audio content (or not play at all),while sending a second, different audio content to another zoneplayer(s) for reproduction.

By way of illustration, SONOS, Inc. of Santa Barbara, Calif. presentlyoffers for sale zone players referred to as a “PLAY:5,” “PLAY:3,”“CONNECT:AMP,” “CONNECT,” and “SUB.” Any other past, present, and/orfuture zone players can additionally or alternatively be used toimplement the zone players of example embodiments disclosed herein.Additionally, it is understood that a zone player is not limited to theparticular examples illustrated in FIGS. 2A, 2B, and 2C or to the SONOSproduct offerings. For example, a zone player may include a wired orwireless headphone. In yet another example, a zone player might includea sound bar for television. In yet another example, a zone player caninclude or interact with a docking station for an Apple iPod™ or similardevice.

b. Example Controllers

FIG. 3 illustrates an example wireless controller 300 in docking station302. By way of illustration, controller 300 can correspond tocontrolling device 130 of FIG. 1. Docking station 302, if provided, maybe used to charge a battery of controller 300. In some embodiments,controller 300 is provided with a touch screen 304 that allows a user tointeract through touch with the controller 300, for example, to retrieveand navigate a playlist of audio items, control operations of one ormore zone players, and provide overall control of the systemconfiguration 100. In certain embodiments, any number of controllers canbe used to control the system configuration 100. In some embodiments,there can be a limit set on the number of controllers that can controlthe system configuration 100. The controllers might be wireless likewireless controller 300 or wired to data network 128.

In some embodiments, if more than one controller is used in system 100,then each controller may be coordinated to display common content, andmay all be dynamically updated to indicate changes made from a singlecontroller. Coordination can occur, for instance, by a controllerperiodically requesting a state variable directly or indirectly from oneor more zone players; the state variable may provide information aboutsystem 100, such as current zone group configuration, what is playing inone or more zones, volume levels, and other items of interest. The statevariable may be passed around on data network 128 between zone players(and controllers, if so desired) as needed or as often as programmed.

In addition, an application running on any network-enabled portabledevice, such as an iPhone™, iPad™, Android™ powered phone, or any othersmart phone or network-enabled device can be used as controller 130. Anapplication running on a laptop or desktop personal computer (PC) orMac™ can also be used as controller 130. Such controllers may connect tosystem 100 through an interface with data network 128, a zone player, awireless router, or using some other configured connection path. Examplecontrollers offered by SONOS, Inc. of Santa Barbara, Calif. include a“Controller 200,” “Sonos CONTROL,” “Sonos® Controller for iPhone,”“Sonos® Controller for iPad,” “Sonos® Controller for Android, “Sonos®Controller for Mac or PC.”

c. Example Data Connection

Zone players 102 to 124 of FIG. 1 are coupled directly or indirectly toa data network, such as data network 128. Controller 130 may also becoupled directly or indirectly to data network 128 or individual zoneplayers. Data network 128 is represented by an octagon in the figure tostand out from other representative components. While data network 128is shown in a single location, it is understood that such a network isdistributed in and around system 100. Particularly, data network 128 canbe a wired network, a wireless network, or a combination of both wiredand wireless networks. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 based on aproprietary mesh network. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 using anon-mesh topology. In some embodiments, one or more of the zone players102-124 are coupled via a wire to data network 128 using Ethernet orsimilar technology. In addition to the one or more zone players 102-124connecting to data network 128, data network 128 can further allowaccess to a wide area network, such as the Internet.

In some embodiments, connecting any of the zone players 102-124, or someother connecting device, to a broadband router, can create data network128. Other zone players 102-124 can then be added wired or wirelessly tothe data network 128. For example, a zone player (e.g., any of zoneplayers 102-124) can be added to the system configuration 100 by simplypressing a button on the zone player itself (or perform some otheraction), which enables a connection to be made to data network 128. Thebroadband router can be connected to an Internet Service Provider (ISP),for example. The broadband router can be used to form another datanetwork within the system configuration 100, which can be used in otherapplications (e.g., web surfing). Data network 128 can also be used inother applications, if so programmed. An example, second network mayimplement SonosNet protocol, developed by SONOS, Inc. of Santa Barbara.SonosNet represents a secure, AES-encrypted, peer-to-peer wireless meshnetwork. Alternatively, in certain embodiments, the data network 128 isthe same network, such as a traditional wired or wireless network, usedfor other applications in the household.

d. Example Zone Configurations

A particular zone can contain one or more zone players. For example, thefamily room of FIG. 1 contains two zone players 106 and 108, while thekitchen is shown with one zone player 102. In another example, the hometheater room contains additional zone players to play audio from a 5.1channel or greater audio source (e.g., a movie encoded with 5.1 orgreater audio channels). In some embodiments, one can position a zoneplayer in a room or space and assign the zone player to a new orexisting zone via controller 130. As such, zones may be created,combined with another zone, removed, and given a specific name (e.g.,“Kitchen”), if so desired and programmed to do so with controller 130.Moreover, in some embodiments, zone configurations may be dynamicallychanged even after being configured using controller 130 or some othermechanism.

In some embodiments, if a zone contains two or more zone players, suchas the two zone players 106 and 108 in the family room, then the twozone players 106 and 108 can be configured to play the same audio sourcein synchrony, or the two zone players 106 and 108 can be paired to playtwo separate sounds in left and right channels, for example. In otherwords, the stereo effects of a sound can be reproduced or enhancedthrough the two zone players 106 and 108, one for the left sound and theother for the right sound. In certain embodiments, paired zone players(also referred to as “bonded zone players”) can play audio in synchronywith other zone players in the same or different zones.

In some embodiments, two or more zone players can be sonicallyconsolidated to form a single, consolidated zone player. A consolidatedzone player (though made up of multiple, separate devices) can beconfigured to process and reproduce sound differently than anunconsolidated zone player or zone players that are paired, because aconsolidated zone player will have additional speaker drivers from whichsound can be passed. The consolidated zone player can further be pairedwith a single zone player or yet another consolidated zone player. Eachplayback device of a consolidated playback device can be set in aconsolidated mode, for example.

According to some embodiments, one can continue to do any of: group,consolidate, and pair zone players, for example, until a desiredconfiguration is complete. The actions of grouping, consolidation, andpairing are preferably performed through a control interface, such asusing controller 130, and not by physically connecting and re-connectingspeaker wire, for example, to individual, discrete speakers to createdifferent configurations. As such, certain embodiments described hereinprovide a more flexible and dynamic platform through which soundreproduction can be offered to the end-user.

e. Example Audio Sources

In some embodiments, each zone can play from the same audio source asanother zone or each zone can play from a different audio source. Forexample, someone can be grilling on the patio and listening to jazzmusic via zone player 124, while someone is preparing food in thekitchen and listening to classical music via zone player 102. Further,someone can be in the office listening to the same jazz music via zoneplayer 110 that is playing on the patio via zone player 124. In someembodiments, the jazz music played via zone players 110 and 124 isplayed in synchrony. Synchronizing playback amongst zones allows forsomeone to pass through zones while seamlessly (or substantiallyseamlessly) listening to the audio. Further, zones can be put into a“party mode” such that all associated zones will play audio insynchrony.

Sources of audio content to be played by zone players 102-124 arenumerous. In some embodiments, music on a zone player itself may beaccessed and a played. In some embodiments, music from a personallibrary stored on a computer or networked-attached storage (NAS) may beaccessed via the data network 128 and played. In some embodiments,Internet radio stations, shows, and podcasts can be accessed via thedata network 128. Music or cloud services that let a user stream and/ordownload music and audio content can be accessed via the data network128. Further, music can be obtained from traditional sources, such as aturntable or CD player, via a line-in connection to a zone player, forexample. Audio content can also be accessed using a different protocol,such as AirPlay™, which is a wireless technology by Apple, Inc., forexample. Audio content received from one or more sources can be sharedamongst the zone players 102 to 124 via data network 128 and/orcontroller 130. The above-disclosed sources of audio content arereferred to herein as network-based audio information sources. However,network-based audio information sources are not limited thereto.

In some embodiments, the example home theater zone players 116, 118, 120are coupled to an audio information source such as a television 132. Insome examples, the television 132 is used as a source of audio for thehome theater zone players 116, 118, 120, while in other examples audioinformation from the television 132 can be shared with any of the zoneplayers 102-124 in the audio system 100.

III. Zone Players

Referring now to FIG. 4, there is shown an example block diagram of azone player 400 in accordance with an embodiment. Zone player 400includes a network interface 402, a processor 408, a memory 410, anaudio processing component 412, one or more modules 414, an audioamplifier 416, and a speaker unit 418 coupled to the audio amplifier416. FIG. 2A shows an example illustration of such a zone player. Othertypes of zone players may not include the speaker unit 418 (e.g., suchas shown in FIG. 2B) or the audio amplifier 416 (e.g., such as shown inFIG. 2C). Further, it is contemplated that the zone player 400 can beintegrated into another component. For example, the zone player 400could be constructed as part of a television, lighting, or some otherdevice for indoor or outdoor use.

In some embodiments, network interface 402 facilitates a data flowbetween zone player 400 and other devices on a data network 128. In someembodiments, in addition to getting audio from another zone player ordevice on data network 128, zone player 400 may access audio directlyfrom the audio source, such as over a wide area network or on the localnetwork. In some embodiments, the network interface 402 can furtherhandle the address part of each packet so that it gets to the rightdestination or intercepts packets destined for the zone player 400.Accordingly, in certain embodiments, each of the packets includes anInternet Protocol (IP)-based source address as well as an IP-baseddestination address.

In some embodiments, network interface 402 can include one or both of awireless interface 404 and a wired interface 406. The wireless interface404, also referred to as a radio frequency (RF) interface, providesnetwork interface functions for the zone player 400 to wirelesslycommunicate with other devices (e.g., other zone player(s), speaker(s),receiver(s), component(s) associated with the data network 128, and soon) in accordance with a communication protocol (e.g., any wirelessstandard including IEEE 802.11a, 802.11b, 802.11g, 802.11n, or 802.15).Wireless interface 404 may include one or more radios. To receivewireless signals and to provide the wireless signals to the wirelessinterface 404 and to transmit wireless signals, the zone player 400includes one or more antennas 420. The wired interface 406 providesnetwork interface functions for the zone player 400 to communicate overa wire with other devices in accordance with a communication protocol(e.g., IEEE 802.3). In some embodiments, a zone player includes both ofthe interfaces 404 and 406. In some embodiments, a zone player 400includes only the wireless interface 404 or the wired interface 406.

In some embodiments, the processor 408 is a clock-driven electronicdevice that is configured to process input data according toinstructions stored in memory 410. The memory 410 is data storage thatcan be loaded with one or more software module(s) 414, which can beexecuted by the processor 408 to achieve certain tasks. In theillustrated embodiment, the memory 410 is a tangible machine-readablemedium storing instructions that can be executed by the processor 408.In some embodiments, a task might be for the zone player 400 to retrieveaudio data from another zone player or a device on a network (e.g.,using a uniform resource locator (URL) or some other identifier). Insome embodiments, a task may be for the zone player 400 to send audiodata to another zone player or device on a network. In some embodiments,a task may be for the zone player 400 to synchronize playback of audiowith one or more additional zone players. In some embodiments, a taskmay be to pair the zone player 400 with one or more zone players tocreate a multi-channel audio environment. Additional or alternativetasks can be achieved via the one or more software module(s) 414 and theprocessor 408.

The audio processing component 412 can include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor, and so on. Insome embodiments, the audio processing component 412 may be part ofprocessor 408. In some embodiments, the audio that is retrieved via thenetwork interface 402 is processed and/or intentionally altered by theaudio processing component 412. Further, the audio processing component412 can produce analog audio signals. The processed analog audio signalsare then provided to the audio amplifier 416 for play back throughspeakers 418. In addition, the audio processing component 412 caninclude circuitry to process analog or digital signals as inputs to playfrom zone player 400, send to another zone player on a network, or bothplay and send to another zone player on the network. An example inputincludes a line-in connection (e.g., an auto-detecting 3.5 mm audioline-in connection).

The audio amplifier 416 is a device(s) that amplifies audio signals to alevel for driving one or more speakers 418. The one or more speakers 418can include an individual transducer (e.g., a “driver”) or a completespeaker system that includes an enclosure including one or more drivers.A particular driver can be a subwoofer (e.g., for low frequencies), amid-range driver (e.g., for middle frequencies), and a tweeter (e.g.,for high frequencies), for example. An enclosure can be sealed orported, for example. Each transducer may be driven by its own individualamplifier.

A commercial example, presently known as the PLAY:5, is a zone playerwith a built-in amplifier and speakers that is capable of retrievingaudio directly from the source, such as on the Internet or on the localnetwork, for example. In particular, the PLAY:5 is a five-amp,five-driver speaker system that includes two tweeters, two mid-rangedrivers, and one woofer. When playing audio content via the PLAY:5, theleft audio data of a track is sent out of the left tweeter and leftmid-range driver, the right audio data of a track is sent out of theright tweeter and the right mid-range driver, and mono bass is sent outof the subwoofer. Further, both mid-range drivers and both tweeters havethe same equalization (or substantially the same equalization). That is,they are both sent the same frequencies, but from different channels ofaudio. Audio from Internet radio stations, online music and videoservices, downloaded music, analog audio inputs, television, DVD, and soon, can be played from the PLAY:5.

IV. Controller

Referring now to FIG. 5, there is shown an example block diagram forcontroller 500, which can correspond to the controlling device 130 inFIG. 1. Controller 500 can be used to facilitate the control ofmulti-media applications, automation and others in a system. Inparticular, the controller 500 may be configured to facilitate aselection of a plurality of audio sources available on the network andenable control of one or more zone players (e.g., the zone players102-124 in FIG. 1) through a wireless or wired network interface 508.According to one embodiment, the wireless communications is based on anindustry standard (e.g., infrared, radio, wireless standards includingIEEE 802.11a, 802.11b 802.11g, 802.11n, or 802.15, and so on). Further,when a particular audio is being accessed via the controller 500 orbeing played via a zone player, a picture (e.g., album art) or any otherdata, associated with the audio and/or audio source can be transmittedfrom a zone player or other electronic device to controller 500 fordisplay.

Controller 500 is provided with a screen 502 and an input interface 514that allows a user to interact with the controller 500, for example, tonavigate a playlist of many multimedia items and to control operationsof one or more zone players. The screen 502 on the controller 500 can bean LCD screen, for example. The screen 500 communicates with and iscommanded by a screen driver 504 that is controlled by a microcontroller(e.g., a processor) 506. The memory 510 can be loaded with one or moreapplication modules 512 that can be executed by the microcontroller 506with or without a user input via the user interface 514 to achievecertain tasks. In some embodiments, an application module 512 isconfigured to facilitate grouping a number of selected zone players intoa zone group and synchronizing the zone players for audio play back. Insome embodiments, an application module 512 is configured to control theaudio sounds (e.g., volume) of the zone players in a zone group. Inoperation, when the microcontroller 506 executes one or more of theapplication modules 512, the screen driver 504 generates control signalsto drive the screen 502 to display an application specific userinterface accordingly.

The controller 500 includes a network interface 508 that facilitateswired or wireless communication with a zone player. In some embodiments,the commands such as volume control and audio playback synchronizationare sent via the network interface 508. In some embodiments, a savedzone group configuration is transmitted between a zone player and acontroller via the network interface 508. The controller 500 can controlone or more zone players, such as 102-124 of FIG. 1. There can be morethan one controller for a particular system, and each controller mayshare common information with another controller, or retrieve the commoninformation from a zone player, if such a zone player storesconfiguration data (e.g., such as a state variable). Further, acontroller can be integrated into a zone player.

It should be noted that other network-enabled devices such as aniPhone®, iPad® or any other smart phone or network-enabled device (e.g.,a networked computer such as a PC or Mac®) can also be used as acontroller to interact or control zone players in a particularenvironment. In some embodiments, a software application or upgrade canbe downloaded onto a network-enabled device to perform the functionsdescribed herein.

In certain embodiments, a user can create a zone group (also referred toas a bonded zone) including at least two zone players from thecontroller 500. The zone players in the zone group can play audio in asynchronized fashion, such that all of the zone players in the zonegroup play back an identical audio source or a list of identical audiosources in a synchronized manner such that no (or substantially no)audible delays or hiccups are to be heard. Similarly, in someembodiments, when a user increases the audio volume of the group fromthe controller 500, the signals or data of increasing the audio volumefor the group are sent to one of the zone players and causes other zoneplayers in the group to be increased together in volume.

A user via the controller 500 can group zone players into a zone groupby activating a “Link Zones” or “Add Zone” soft button, or de-grouping azone group by activating an “Unlink Zones” or “Drop Zone” button. Forexample, one mechanism for ‘joining’ zone players together for audioplay back is to link a number of zone players together to form a group.To link a number of zone players together, a user can manually link eachzone player or room one after the other. For example, assume that thereis a multi-zone system that includes the following zones: Bathroom,Bedroom, Den, Dining Room, Family Room, and Foyer.

In certain embodiments, a user can link any number of the six zoneplayers, for example, by starting with a single zone and then manuallylinking each zone to that zone.

In certain embodiments, a set of zones can be dynamically linkedtogether using a command to create a zone scene or theme (subsequent tofirst creating the zone scene). For instance, a “Morning” zone scenecommand can link the Bedroom, Office, and Kitchen zones together in oneaction. Without this single command, the user would need to manually andindividually link each zone. The single command may include a mouseclick, a double mouse click, a button press, a gesture, or some otherprogrammed action. Other kinds of zone scenes can be programmed.

In certain embodiments, a zone scene can be triggered based on time(e.g., an alarm clock function). For instance, a zone scene can be setto apply at 8:00 am. The system can link appropriate zonesautomatically, set specific music to play, and then stop the music aftera defined duration. Although any particular zone can be triggered to an“On” or “Off” state based on time, for example, a zone scene enables anyzone(s) linked to the scene to play a predefined audio (e.g., afavorable song, a predefined playlist) at a specific time and/or for aspecific duration. If, for any reason, the scheduled music failed to beplayed (e.g., an empty playlist, no connection to a share, failedUniversal Plug and Play (UPnP), no Internet connection for an InternetRadio station, and so on), a backup buzzer can be programmed to sound.The buzzer can include a sound file that is stored in a zone player, forexample.

V. Extending Media Playback

FIG. 6 shows an example process 600 for intelligently extending mediaplayback according to an embodiment. The process 600 may be used for anytype of media, including audio and video or both. Aspects of the process600 may be implemented on a single device, such as a zone player or acontroller, or a combination of devices, such as a zone player and acontroller. Process 600 may further be implemented by a device that isneither a zone player nor a controller.

At block 602, a playback queue that contains a list of playable items isestablished. Using a music example, when a user makes a music selection,the music is added to a list of playable items. The list of playableitems can include one or more items. An item can be a track, playlist,album, radio channel, or some other playable item. In some embodiments,the item is a pointer or identification of the track, playlist, album,radio channel, and so on, such that when playing, the zone player (orother playback device) retrieves the underlying content, usually in astreaming fashion from another device on a local network or a server viathe cloud.

Looking to FIG. 7, where an example controller user interface (UI) 700is shown, a playback queue may be found at 702. In this example, theplayback queue 702 corresponds to a zone group 704 currently comprisedof the “Kitchen” and “Living Room.” Note that a user can modify aparticular zone group by selecting “Group” at 706 and then selectingwhich zones should be included in the group, effectively enabling theuser to add or drop zones from the group. Each zone group can have itsown playback queue, and modification of a zone group can happen whilemusic is playing from the playback queue. The items in a playback queuemay be played following an order (e.g., sequentially or in random order)depending on the user's selection or preference.

In the example of FIG. 7, a play indicator 708 appears to the left ofthe item currently playing in the playback queue (e.g., currently apause symbol is shown that indicates the user can pause the play byselecting the symbol). When the current item ends, the next item in thequeue starts to play, and play continues through the list until thequeue is completed or some other action like “repeat” is selected. Whena user adds a selection to a playback queue, he or she can choose toplay them now, play them next, add them to the end of the queue, or playthem now and clear the queue of previous music selections.

In an embodiment, the playback queue is established in memory at a zoneplayer. It could be the memory of a zone player that is to play thecontent or another zone player. Looking at FIG. 4, for example, theplayback queue may be stored in memory 410. In an embodiment, theplayback queue, or some aspect, is provided to the controllers of aplayback system so that the UI of the controllers can properly displaythe current system state to the user (e.g., to display the items in theplayback queue to the user).

In another embodiment, the playback queue is established in memory atanother device on a local playback network that is not a zone player.The other device may be a computing device that is a centralized deviceor some other device that is network connected to the playback system.

In yet another embodiment, the playback queue is established in memoryat a controller. According to the embodiment, the controller maintainsthe playback queue. Looking to FIG. 5, for example, the playback queuemay be stored in memory 510.

At block 604, an additional playable item that corresponds insubstantial likeness to the list of playable items is determined. Morethan one additional playable item may be determined. In an embodiment,the option to extend playback is selected by a user in advance of thesystem extending the playback. This may be performed, for example, in aconfiguration window or via a single soft button offering thiscapability.

In an embodiment, the determination of the additional playable item isinitiated based on a trigger. The trigger may be programmable by theuser, hardcoded by the system developer, or a combination of both. Forinstance, block 604 might be programmed to occur as soon as a playableitem is added to the queue or at some other time. In another instance,the system may sum the total play time of the playback queue and usethat data to trigger block 604 (e.g., initiate block 604 when half ofthe play is done or when 3 songs are left to play).

In an embodiment, the determination of the additional item includesselecting the playable item to be in substantial likeness to the list ofitems in the playback queue. For instance, the system may look tomaterial from the same artist, similar artists, channels based on theartist or similar artists. For example, if tracks from a Frank Sinatraalbum are in the queue, then the system might look to other FrankSinatra albums or albums by artists like Sinatra. In another instance,the system may use an algorithm that results in an additional item. Thealgorithm may take into account certain attributes that describe aparticular song. In yet another instance, the system may use analgorithm from a third-party service (e.g., Pandora, etc.) to provideadditional items similar to the list of items in the playback queue.

In an embodiment, block 604 includes determining the additional playableitem by searching accessible content via a network for the additionalplayable item. The playable item may be available from a local library(e.g., a shared folder on the home network), a music service, a savedplaylist (e.g., a queue that was saved for future playback), radio,docked smart phones, a line-in connection to an external source, and soon.

In an embodiment, block 604 includes determining the additional playableitem by providing a characteristic of the list of playable items to athird party service. For instance, if the playback queue contained musicby Frank Sinatra, then the system may provide a service like Pandora orother third party provider with Frank Sinatra. Using that information,Pandora or a similar service can create a similar channel to that kindof music with their own proprietary engine. The newly created channelmay be added to the playback queue. In addition, the newly createdchannel may be saved such that it can be accessed in the future.

At block 606, the additional playback item is placed in the playbackqueue. In an embodiment, the additional playable item is placed last inthe playback queue. In another embodiment, the additional playable itemis placed between two playable items of the list of playable items.

It is understood that according to an embodiment, the system can extendplay time by automatically determining and/or playing audio content thatis similar to what has been played by the particular player or group ofplayers, versus just looking to the audio content in a playback queue.As such, the system and/or method may include determining what audio hasbeen played via the playback device(s) and using that information to addcontent for play time extension. In some instances, this embodiment canprovide a very accurate account of what kind of audio should be addedand played to extend play time. In one embodiment, the system can lookto the playback queue including song or track removals (and additions)over a designated time period. In another embodiment, the system maylook to what audio has been played via the playback device(s) over adesignated time period and not necessarily use the playback queueinformation.

In a further embodiment, both a location of a particular zone playerbeing used as well as a time slot for when play time is to be extendedmay be considered when determining a smart playback list/extension ofcurrent playback items. For example, zone players in the kitchen zonemay be playing audio from a queue at around 6:00 pm. When the queue runsout of audio content, the system may search a database (which may bestored in the cloud) for information on what has been played frequentlyover the last few weeks in the kitchen zone in the time frame of5:00-7:00 pm. The system may then use audio track results from thesearch (or a top 10 audio track results, for example) for extending theplayback queue.

VI. Conclusion

Embodiments described above provide for intelligently extending mediaplayback. In an embodiment, a user can determine ahead of time whetherhe or she would like the system to shift to like music. The user mightdo this to extend media playback time without further effort by the user(or significant effort such as making additional user selections). Thisis particularly useful in scenarios when the user fills the playbackqueue with some playable items, but doesn't necessarily want the play tostop when the items are done playing. In some instances, with thefeature(s) to extend playback turned on, the system will not stopplaying audio until the user actually stops the playing via a controlleror some other mechanism.

Additionally, in an embodiment, any queue in the system can be extendedfor playback, if so desired. For example, a queue corresponding to azone, zone group, or party mode (all zones playing in synchrony) may usethe playback extension feature(s) described herein.

According to an embodiment, a playback queue for an audio player isestablished. The playback queue contains one or more playable items. Atleast one additional playable item that corresponds in substantiallikeness to the list of playable items is determined and placed in theplayback queue, which intelligently extends play time.

According to another embodiment, unlike a traditional music queue wherethe music stops playing when a list of songs in the queue has beenplayed or exhausted (e.g., repeated several times), the systemautomatically shifts to audio that is like the audio in the queue andthe similar audio continues to play.

According to yet another embodiment, in addition to placing extraplayable items at the end of a playback queue, or instead of, the systemcan place a playable item in between two playable items already in theplayback queue. In other words, the system can be configured to injectadditional playable items throughout the playback queue.

According to some embodiments, the playable item that is to be added toextend play time corresponds in substantial likeness to the list ofplayable items already in the queue and/or played. Substantial likenessis defined herein as having an identifiable similarity.

The description above discloses various example systems, methods,apparatus, and articles of manufacture including, among othercomponents, firmware and/or software executed on hardware. However, suchexamples, like those shown and described with respect to FIGS. 1 through7, are merely illustrative and should not be considered as limiting.Further, it is contemplated that any or all of these firmware, hardware,and/or software components can be embodied exclusively in hardware,exclusively in software, exclusively in firmware, or in any combinationof hardware, software, and/or firmware. Accordingly, while the abovedescription provides the reader with example systems, methods,apparatus, and/or articles of manufacture, the examples provided are notthe only way(s) to implement such systems, methods, apparatus, and/orarticles of manufacture, such as understood by a person of ordinaryskill in the art.

Additionally, reference herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of theinvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible mediumsuch as a memory, DVD, CD, Blu-ray, and so on, storing the softwareand/or firmware.

I claim:
 1. A non-transitory computer-readable medium having storedtherein instructions executable by one or more processors to cause acontrol device to perform operations comprising: sending an instructionthat causes a first playback device to populate a queue with one or morefirst media items, wherein the queue comprises an ordered list of mediaitems for playback by the first playback device; sending an instructionthat causes the first playback device to initiate playback of the queue;during playback of the one or more first media items populated in thequeue, extending playback time of the queue, wherein extending playbacktime of the queue comprises: determining when the one or more firstmedia items will be finished playing; and before the first media itemsare finished playing, determining one or more second media items thatcorrespond in substantial likeness to the one or more first media itemsand sending an instruction that causes the first playback device toinsert the determined one or more second media items into the queue suchthat play time of the queue is extended.
 2. The non-transitorycomputer-readable medium of claim 1, wherein the first playback deviceis a member of a zone group that includes a second playback device, andwherein sending the instruction that causes the first playback device toinitiate playback of the queue comprises: sending an instruction thatcauses the first playback device and the second playback device of thezone group to initiate playback of the queue in synchrony.
 3. Thenon-transitory computer-readable medium of claim 2, wherein extendingplayback time of the queue comprises sending an instruction that causesthe first playback device to send the one or more second media items tothe second playback device.
 4. The non-transitory computer-readablemedium of claim 3, wherein sending the instruction that causes the firstplayback device to send the one or more second media items to the secondplayback device comprises sending an instruction that causes the firstplayback device to indicate a source of the one or more second mediaitems to the second playback device.
 5. The non-transitorycomputer-readable medium of claim 1, wherein the operations furthercomprise: causing a graphical interface to display an indication of thequeue, wherein the queue includes the one or more first media items andthe one or more second media items.
 6. The non-transitorycomputer-readable medium of claim 1, wherein the first playback deviceis a member of a zone, and wherein determining one or more second mediaitems that corresponds in substantial likeness to the one or more firstmedia items comprises determining one or more media items that have beenpreviously played back in the zone.
 7. The non-transitorycomputer-readable medium of claim 1, wherein determining one or moresecond media items that corresponds in substantial likeness to the oneor more first media items comprises: determining a current time of day;and determining one or more media items that have been previously playedback by the first playback device in a window of time that encompassesthe current time of day.
 8. The non-transitory computer-readable mediumof claim 1, wherein sending the instruction that causes the firstplayback device to insert the determined one or more second media itemsinto the queue comprises sending an instruction that causes the firstplayback device to insert a given one of the one or more second mediaitems into the queue between two of the one or more first media items.9. The non-transitory computer-readable medium of claim 1, whereindetermining one or more second media items that correspond insubstantial likeness to the one or more first media items comprisesquerying a streaming music service for a channel of one or more secondmedia items that correspond to the one or more first media items, andwherein sending the instruction that causes the first playback device toinsert the determined one or more second media items into the queuecomprises sending an instruction that causes the first playback deviceto include the channel of one or more second media items in the queue.10. The non-transitory computer-readable medium of claim 1, whereinsending the instruction that causes the first playback device topopulate the queue with the one or more first media items comprisessending an instruction that causes the first playback device to populatea queue that is stored on a second device with the one or more firstmedia items.
 11. A method comprising: sending, by a control device of amedia playback system, an instruction that causes a first playbackdevice of the media playback system to populate a queue with one or morefirst media items, wherein the queue comprises an ordered list of mediaitems for playback by the first playback device; sending, by the controldevice, an instruction that causes the first playback device to initiateplayback of the queue; during playback of the one or more first mediaitems populated in the queue, extending playback time of the queue,wherein extending playback time of the queue comprises: determining, bythe playback device, when the one or more first media items will befinished playing; and before the first media items are finished playing,determining, by the playback device, one or more second media items thatcorrespond in substantial likeness to the one or more first media itemsand sending an instruction that causes the first playback device toinsert the determined one or more second media items into the queue suchthat play time of the queue is extended.
 12. A control devicecomprising: one or more processors; and tangible non-transitorycomputer-readable memory have instructions encoded therein, wherein theinstructions, when executed by the one or more processors, cause thecontrol device device to perform a method comprising: sending aninstruction that causes a first playback device to populate a queue withone or more first media items, wherein the queue comprises an orderedlist of media items for playback by the first playback device; sendingan instruction that causes the first playback device to initiateplayback of the queue; during playback of the one or more first mediaitems populated in the queue, extending playback time of the queue,wherein extending playback time of the queue comprises: determining whenthe one or more first media items will be finished playing; and beforethe first media items are finished playing, determining one or moresecond media items that correspond in substantial likeness to the one ormore first media items and sending an instruction that causes the firstplayback device to insert the determined one or more second media itemsinto the queue such that play time of the queue is extended.
 13. Anon-transitory computer-readable medium having stored thereininstructions executable by one or more processors to cause a controldevice to perform operations comprising: receiving an indication of oneor more first media items that are populated in a queue of a firstplayback device, wherein the queue comprises an ordered list of mediaitems for playback by the first playback device; during playback of theone or more first media items populated in the queue by the firstplayback device, extending playback time of the queue, wherein extendingplayback time of the queue comprises: determining when the one or morefirst media items will be finished playing; and before the first mediaitems are finished playing, determining one or more second media itemsthat correspond in substantial likeness to the one or more first mediaitems and sending an instruction that causes the first playback deviceto insert the determined one or more second media items into the queuesuch that play time of the queue is extended.
 14. The non-transitorycomputer-readable medium of claim 13, wherein the first playback deviceis a member of a zone group that includes a second playback device, andwherein the operations further comprising sending an instruction thatcauses the first playback device and the second playback device of thezone group to initiate playback of the queue in synchrony.
 15. Thenon-transitory computer-readable medium of claim 14, wherein extendingplayback time of the queue comprises sending an instruction that causesthe first playback device to send the one or more second media items tothe second playback device.
 16. The non-transitory computer-readablemedium of claim 15, wherein sending the instruction that causes thefirst playback device to send the one or more second media items to thesecond playback device comprises sending an instruction that causes thefirst playback device to indicate a source of the one or more secondmedia items to the second playback device.
 17. The non-transitorycomputer-readable medium of claim 13, wherein the first playback deviceis a member of a zone, and wherein determining one or more second mediaitems that corresponds in substantial likeness to the one or more firstmedia items comprises determining one or more media items that have beenpreviously played back in the zone.
 18. The non-transitorycomputer-readable medium of claim 13, wherein sending the instructionthat causes the first playback device to populate the queue with the oneor more first media items comprises sending an instruction that causesthe first playback device to populate a queue that is stored on a seconddevice with the one or more first media items.
 19. A method comprising:receiving, by a control device of a media playback system, an indicationof one or more first media items that are populated in a queue of afirst playback device of the media playback system, wherein the queuecomprises an ordered list of media items for playback by the firstplayback device; during playback of the one or more first media itemspopulated in the queue by the first playback device, extending playbacktime of the queue, wherein extending playback time of the queuecomprises: determining when the one or more first media items will befinished playing; and before the first media items are finished playing,determining one or more second media items that correspond insubstantial likeness to the one or more first media items and sending aninstruction that causes the first playback device to insert thedetermined one or more second media items into the queue such that playtime of the queue is extended.
 20. The method of claim 19, furthercomprising: sending an instruction that causes the first playback deviceto populate the queue with the one or more first media items.
 21. Themethod of claim 19, wherein the media playback system comprises a secondplayback device, and wherein the method further comprises sending aninstruction that causes the first playback device to initiate playbackof the queue in synchrony with the second playback device.
 22. A controldevice comprising: one or more processors; and tangible non-transitorycomputer-readable memory have instructions encoded therein, wherein theinstructions, when executed by the one or more processors, cause thecontrol device to perform a method comprising: receiving, by a controldevice of a media playback system, an indication of one or more firstmedia items that are populated in a queue of a first playback device ofthe media playback system, wherein the queue comprises an ordered listof media items for playback by the first playback device; duringplayback of the one or more first media items populated in the queue bythe first playback device, extending playback time of the queue, whereinextending playback time of the queue comprises: determining when the oneor more first media items will be finished playing; and before the firstmedia items are finished playing, determining one or more second mediaitems that correspond in substantial likeness to the one or more firstmedia items and sending an instruction that causes the first playbackdevice to insert the determined one or more second media items into thequeue such that play time of the queue is extended.